﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace jogoLudumdare
{
    class Fase1 : State
    {
        public static bool New = true;
        public void Restart()
        {
            ColetaItem = false;
            largura=0;
            altura=0;
        
            Tocando = true;
            TocandoInt = 1;
            QTDItens = 0;
            LataLixo.Coletado = false;
            PedacoVestido.Coletado = false;
            Fita.Coletado = false;
            ID.Coletado = false;
            sapato.Coletado = false;
        }

        public static Itens Fundo, LataLixo, PedacoVestido, Fita, Lama, ID, sapato;
        bool ColetaItem = false;
        public static int largura=0;
        public static int altura=0;
        public SoundEffect SomAchou;
        public static bool Tocando = true;
        public static int TocandoInt = 1;
        public static int QTDItens = 0;
        
     

        public Fase1(ContentManager content)
        {

            Fundo = new Itens(content.Load<Texture2D>(@"Fase1/fundo1"), new Rectangle(0, 0, 800, 600), false);
            SomAchou = content.Load<SoundEffect>(@"Fase1/Sons/boing");
            PedacoVestido = new Itens(content.Load<Texture2D>(@"Fase1/pedacoPano"), new Rectangle(133, 528, 55, 34), false);
            LataLixo = new Itens(content.Load<Texture2D>(@"Fase1/lixeira"), new Rectangle(15, 370, 165, 193), false);
            Fita = new Itens(content.Load<Texture2D>(@"Fase1/laco"), new Rectangle(15, 383, 77, 119), false);
            Lama = new Itens(content.Load<Texture2D>(@"Fase1/Lama"), new Rectangle(400, 513, 125, 47), false);
            ID = new Itens(content.Load<Texture2D>(@"Fase1/Carteirinhas"), new Rectangle(450, 519, 35, 13), false);
            sapato = new Itens(content.Load<Texture2D>(@"Fase1/sapato"), new Rectangle(721, 116, 57, 42), false);
        }

        public void Update(GameTime gameTime)
        {
            if (New)
            {
                Restart();
                New = false;
            }

            PedacoVestido.ColetagemAumentoDaImagemIten(largura,altura);
            Fita.ColetagemAumentoDaImagemIten(largura,altura);
            ID.ColetagemAumentoDaImagemIten(largura,altura);
            sapato.ColetagemAumentoDaImagemIten(largura,altura);
            if (QTDItens == 4)
            {
                nextState = GameState.Fase2;
                New = true;
            }
         
        }
       public void Draw(SpriteBatch spriteBatch, MouseState mouse)
        {
            
 
            spriteBatch.Draw(Fundo.Imagem, Fundo.Posicao, Color.White);
            if (!PedacoVestido.Coletado)
            {
                spriteBatch.Draw(PedacoVestido.Imagem, PedacoVestido.Posicao, Color.White);
            }
            spriteBatch.Draw(LataLixo.Imagem, LataLixo.Posicao, Color.White);
            if (!Fita.Coletado)
            {
                spriteBatch.Draw(Fita.Imagem, Fita.Posicao, Color.White);
            }
            spriteBatch.Draw(Lama.Imagem, Lama.Posicao, Color.White);
            if (!ID.Coletado)
            {
                spriteBatch.Draw(ID.Imagem, new Rectangle(449,505, ID.Imagem.Width / 20, ID.Imagem.Height/6), new Rectangle(619/2, 0, ID.Imagem.Width / 2, ID.Imagem.Height), Color.White);
               
            }
            if (!sapato.Coletado)
            {
                spriteBatch.Draw(sapato.Imagem, sapato.Posicao, Color.White);
            }


            GanhaItem(spriteBatch, mouse);
           
        }
       public void PlaySom()
       {
           if (TocandoInt == 1 && Tocando)
           {
               TocandoInt = 2;
               
               SomAchou.Play();

           }
           else if (TocandoInt == 2)
           {

           }
           else
           {

           }
           
       }
       public void GanhaItem(SpriteBatch spriteBatch, MouseState mouse)
       {
           if (mouse.X > PedacoVestido.Posicao.X && mouse.X < PedacoVestido.Posicao.X + PedacoVestido.Imagem.Width &&
               mouse.Y > PedacoVestido.Posicao.Y && mouse.Y < PedacoVestido.Posicao.Y + PedacoVestido.Imagem.Height &&
               mouse.LeftButton == ButtonState.Pressed &&
               PedacoVestido.Posicao.Height != 0)
           {
               ColetaItem = true;
               PedacoVestido.Coletado = true;
               
               PlaySom();
               Fase2.Sortiou = false;

           }


           if (mouse.X >Fita.Posicao.X && mouse.X< Fita.Posicao.X + Fita.Imagem.Width &&
              mouse.Y > Fita.Posicao.Y && mouse.Y < Fita.Posicao.Y + Fita.Imagem.Height &&
              mouse.LeftButton == ButtonState.Pressed &&
              Fita.Posicao.Height != 0)
           {
               ColetaItem = true;
               Fita.Coletado = true;


               PlaySom();
             
           }

           
           if (mouse.LeftButton == ButtonState.Released)
           {
               TocandoInt = 1;
           }

            if (mouse.X >ID.Posicao.X && mouse.X < ID.Posicao.X + ID.Imagem.Width &&
               mouse.Y > ID.Posicao.Y && mouse.Y < ID.Posicao.Y + ID.Imagem.Height &&
               mouse.LeftButton == ButtonState.Pressed &&
                ID.Posicao.Height != 0)
           {
               ColetaItem = true;
              ID.Coletado = true;

              PlaySom();   
           }
            if (mouse.X > sapato.Posicao.X && mouse.X < sapato.Posicao.X + sapato.Imagem.Width &&
               mouse.Y > sapato.Posicao.Y && mouse.Y < sapato.Posicao.Y + sapato.Imagem.Height &&
               mouse.LeftButton == ButtonState.Pressed &&
                sapato.Posicao.Height != 0)
            {
                ColetaItem = true;
                sapato.Coletado = true;
                PlaySom();
            }
           //Acaba Aqui
            if (PedacoVestido.Coletado)
            {
                spriteBatch.Draw(Game1.FundoGanhaItem, new Vector2(0, 0), Color.White);
                spriteBatch.Draw(PedacoVestido.Imagem, new Vector2((800 / 2) - (largura / 2), (600 / 2) - (altura / 2)), new Rectangle(0, 0, largura, altura), Color.White);
                
                //spriteBatch.Draw(PedacoVestido.Imagem, new Rectangle(400, 300, largura, altura), new Rectangle(PedacoVestido.Posicao.X, PedacoVestido.Posicao.Y, PedacoVestido.Imagem.Width,PedacoVestido.Imagem.Height), Color.White);
                
                
            }
            if (Fita.Coletado)
            {
                spriteBatch.Draw(Game1.FundoGanhaItem, new Vector2(0, 0), Color.White);
                spriteBatch.Draw(Fita.Imagem, new Vector2((800 / 2) - (largura / 2), (600 / 2) - (altura / 2)), new Rectangle(0, 0, largura, altura), Color.White);
                Tocando = false;

                
              
                //spriteBatch.Draw(Fita.Imagem, new Vector2(350,268), Color.White);

                //spriteBatch.Draw(Fita.Imagem, new Rectangle(0, 0, 100, 100), new Rectangle(Fita.Posicao.X, Fita.Posicao.Y, Fita.Imagem.Width, Fita.Imagem.Height), Color.White);

            }
            else if(!Fita.Coletado)
            {
                Tocando = true;
            }

            if (ID.Coletado)
            {
                spriteBatch.Draw(Game1.FundoGanhaItem, new Vector2(0, 0), Color.White);
                spriteBatch.Draw(ID.Imagem, new Rectangle(400 - (largura / 2) + 150, 300 - (altura / 2), ID.Imagem.Width/2, ID.Imagem.Height), new Rectangle(0, 0, ID.Imagem.Width/2, ID.Imagem.Height), Color.White);
               
                //spriteBatch.Draw(ID.Imagem, new Rectangle(400, 300, largura, altura), new Rectangle(ID.Posicao.X, ID.Posicao.Y, ID.Imagem.Width, ID.Imagem.Height), Color.White);
                
            }

            if (sapato.Coletado)
            {
                spriteBatch.Draw(Game1.FundoGanhaItem, new Vector2(0,0), Color.White);
                spriteBatch.Draw(sapato.Imagem, new Vector2((800 / 2) - (largura / 2), (600 / 2) - (altura / 2)), new Rectangle(0, 0, largura, altura), Color.White);
                
                //spriteBatch.Draw(Game1.FundoGanhaItem, new Vector2((800 / 2) - (largura / 2), (600 / 2) - (altura / 2)), new Rectangle(0, 0, largura, altura), Color.White);
                //spriteBatch.Draw(sapato.Imagem, new Rectangle(400, 300, largura, altura), new Rectangle(sapato.Posicao.X, sapato.Posicao.X, sapato.Imagem.Width, sapato.Imagem.Height), Color.White);
                
            }
     
     
       }

       
    }
}
